package com.qf.ayc.orders.controller;

import com.qf.ayc.orders.entity.Orders;
import com.qf.ayc.orders.service.IOrdersService;
import com.qf.ayc.utils.ResultVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author BeautyFairy
 * @since 2024-02-20
 */
@RestController
@CrossOrigin
@RequestMapping("/order")
@Slf4j
public class OrdersController {

    @Autowired
    private IOrdersService ordersService;

    //订单列表接口(无参)
    @GetMapping("/list")
    public ResultVo orderlist() {
        //1.打印日志
        log.info("订单");
        //2.进行必要的参数校验
        //3.通过service层的对象进行业务处理
        List<Orders> orderlist = ordersService.List();
        //4.返回json
        return ResultVo.ok("200", "所有订单信息", orderlist);
    }

    //订单删除接口(参数：订单id)
    @PostMapping("/delete")
    public ResultVo delete(@RequestBody Orders orders) {
        //1.打印日志
        System.out.println(orders.getOrderid());
        //2.进行必要的参数校验
        //3.通过service层的对象进行业务处理
        ordersService.delete(orders.getOrderid());
        //4.返回json
        return ResultVo.ok("200", "订单删除成功");
    }

    //查询订单接口(参数：订单编号)
    @PostMapping("/select")
    public ResultVo select(@RequestBody Orders orders) {
        //1.打印日志
        //2.进行必要的参数校验
        //3.通过service层的对象进行业务处理
        List<Orders> data = ordersService.select(orders);
        //4.返回json
        return ResultVo.ok("200", "查询成功", data);
    }

    //订单添加，返回微信支付的url
    @PostMapping("/add")
    public ResultVo add(@RequestBody Orders orders) {
        //1.打印日志
        //2.进行必要的参数校验
        //3.通过service层的对象进行业务处
        //4.返回json
        return ordersService.add(orders);
    }

    //订单状态接口
    @PostMapping("/status")
    public ResultVo getstatus(@RequestBody Orders orders) {
        //1.打印日志
        //2.进行必要的参数校验
        //3.通过service层的对象进行业务处理
        String data = ordersService.sta(orders.getOrdernumber());
        //4.返回json
        return ResultVo.ok("200", "查询订单状态成功", data);
    }

    //订单分页接口
    @GetMapping("/orderlist")
    public ResultVo getlist(Integer pageNum, Integer limit) {
        List<Orders> alllist = ordersService.getlist(pageNum, limit);
        return ResultVo.ok("1", "所有订单分页", alllist);
    }
}
